﻿using System;
namespace VoteUphold
{
    /// <summary>
    /// 随机生成随机用户名，密码，邮箱，电话，QQ号，性别，年龄,姓名，身份证号码
    /// </summary>
    public interface IRandData
    {
        /// <summary>
        /// 获得年龄
        /// 18-34之间
        /// </summary>
        /// <returns></returns>
        int GetAge();
        /// <summary>
        /// 生成邮箱
        /// </summary>
        /// <returns></returns>
        string GetEmail(int length);
        /// <summary>
        /// 生成密码
        /// </summary>
        /// <param name="length"></param>
        /// <returns></returns>
        string GetPwd(int length);
        /// <summary>
        /// 生成QQ
        /// </summary>
        /// <returns></returns>
        string GetQQ();
        /// <summary>
        /// 获得性别
        /// </summary>
        /// <returns></returns>
        Gender GetSex();
        /// <summary>
        /// 随机 休息秒数
        /// </summary>
        /// <param name="sleep"></param>
        /// <returns></returns>
        int GetSleepSeconds(int minSleep, int maxSleep);

        /// <summary>
        /// 随机 休息秒数
        /// </summary>
        /// <param name="sleep"></param>
        /// <returns></returns>
        int GetSleepSeconds(int sleep);
        
        /// <summary>
        /// 获得电话号码
        /// </summary>
        /// <param name="areaCodeNum">电话号码的第4到8位</param>
        /// <returns></returns>
        string GetTelphone(string areaCodeNum = null);
        /// <summary>
        /// 生成用户名
        /// </summary>
        /// <param name="length"></param>
        /// <returns></returns>
        string GetUsersName(int length);

        /// <summary>
        /// 获取身份证号码
        /// </summary>
        /// <param name="value">此身份证号码的所在地区</param>
        /// <returns>返回正确的身份号码</returns>
        string GetIDCard(out string value);

        /// <summary>
        /// 生成姓名(1是2个字，2：2,3个字随机的. 默认 3个字)
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        string GetName(int? type=null);

    }
}
